package xworker.lang.actions.code;

import org.xmeta.Thing;

public interface CodeThingFactory {
    CodeThingFactory GROOVY = () -> new Thing("xworker.groovy.GroovyAction");
    CodeThingFactory BEANSHELL = () -> new Thing("xworker.lang.actions.BeanShellAction");
    CodeThingFactory JYTHON = () -> new Thing("xworker.jython.JythonAction");
    CodeThingFactory JAVA = () -> new Thing("xworker.lang.actions.JavaAction");
    CodeThingFactory OGNL = () -> new Thing("xworker.lang.actions.OgnlAction");
    CodeThingFactory JAVASCRIPT = () -> {
        Thing thing = new Thing("xworker.lang.actions.JdkScript");
        thing.set("language", "javascript");
        thing.set("fileExt", "js");
        return thing;
    };
    CodeThingFactory LUA = () -> {
        Thing thing = new Thing("xworker.lang.actions.JdkScript");
        thing.set("language", "lua");
        thing.set("fileExt", "lua");
        return thing;
    };

    Thing create();
}
